package distribuicao.impl;

import java.io.Serializable;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import distribuicao.Repositorio;
import distribuicao.RepositorioPadrao;
import distribuicao.Servico;


public class BuscaCriterio implements Servico, Serializable {
	

	private static final long serialVersionUID = 1L;

	public BuscaCriterio() {
		super();
		System.out.println("Instanciado servico de busca com criterio....");
	}

	@Override
	public Map<String, Object> executa(Map dados) throws RemoteException 
	{
        Object entidade       = dados.get("entidade");
        String campo          = (String)dados.get("campo");
        String criterio       = (String)dados.get("criterio");
        String valorIni       = (String)dados.get("valorIni");
        String valorFi        = (String)dados.get("valorFi");
        
        Repositorio repositorio = new RepositorioPadrao();
       // DAOService dao = (DAOService) LocalizadorServico.getObjeto("DAO");
        List<Object> retorno = new ArrayList<Object>();
        if(valorFi.isEmpty())
        {
        	System.out.println("passando no criterio valorIni");
        	retorno = repositorio.recuperaComCriterio(entidade, campo, criterio, valorIni);
        }
        else
        {
        	System.out.println("passando no criterio valorIni e valorFin");
        	retorno = repositorio.recuperaComCriterio(entidade,campo,criterio, valorIni,valorFi);
        
        }
        HashMap<String, Object> resultado = new HashMap<String, Object>();
        resultado.put("resultadoBusca", retorno);
        System.out.println("Resultado = " + resultado);
        return resultado;
	}	

}
